function [f,Psi,Amp, dPsiM, dPsiEta]=TaylorF2Wave(f, Params)
% 
% TaylorF2Wave - make the TaylorF2 phase accurate upto 3.5 PN
% 
% usage: [f, Psi, Amp, dPsiM, dPsiEta]=TaylorF2Wave(fVec, Params)
%
% P. Ajith, 05.04.2008
%
% $Id: TaylorF2Wave.m 59 2010-01-20 21:41:01Z anand.sengupta $

    MSOLAR_TIME = 4.92579497077314e-06;
    PARSEC_SEC = 1.0292712503e8;


    m = Params.totalMass.*MSOLAR_TIME;
    d = Params.dEff*PARSEC_SEC*1e6;
    eta = Params.eta;
    t0 = Params.startTime;
    phi0 = Params.startPhase;

    C = m^(5/6)*sqrt(5*Params.eta/24)/(d*pi^(2/3));

Amp = C*f.^(-7/6);    

Psi = -113.57092493979931.*power(f.*m,0.3333333333333333) + 55./(384.*f.*m.*pi) + ...
  27145./(21504.*power(f.*m,0.3333333333333333).* ...
     power(pi,0.3333333333333333)) - (161.*pi)./384. +  ...
  (378515.*power(f.*m,0.6666666666666666).*power(pi,1.6666666666666667))./ ...
   64512. + 2.*f.*pi.*t0 - (9.551407715020614.*power(f.*m,0.3333333333333333))./ ...
   eta + 3./(128.*power(f.*m,1.6666666666666667).* ...
     power(pi,1.6666666666666667).*eta) + 3715./(32256.*f.*m.*pi.*eta) +  ...
  15293365./(2.1676032e7.*power(f.*m,0.3333333333333333).* ...
     power(pi,0.3333333333333333).*eta) -  ...
  (3.*power(pi,0.3333333333333333))./ ...
   (8.*power(f.*m,0.6666666666666666).*eta) + (38645.*pi)./(32256.*eta) +  ...
  (77096675.*power(f.*m,0.6666666666666666).*power(pi,1.6666666666666667))./ ...
   (1.0838016e7.*eta) + (3085.*eta)./ ...
   (3072.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333)) +  ...
  (76055.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333).*eta)./ ...
   73728. - (74045.*power(f.*m,0.6666666666666666).* ...
     power(pi,1.6666666666666667).*eta)./32256. -  ...
  (127825.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333).* ...
     power(eta,2))./55296. - phi0 - (65.*pi.*log(6))./256. +  ...
  (38645.*pi.*log(6))./(21504.*eta) -  ...
  (65.*pi.*log(power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333)))./ ...
   128. - (107.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333).* ...
     log(power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333)))./ ...
   (14.*eta) + (38645.*pi.*log(power(f.*m,0.3333333333333333).* ...
       power(pi,0.3333333333333333)))./(10752.*eta);


dPsiM = (-37.8569749799331.*f)./power(f.*m,0.6666666666666666) - ...
  55./(384.*f.*power(m,2).*pi) - (27145.*f)./ ...
   (64512.*power(f.*m,1.3333333333333333).*power(pi,0.3333333333333333)) -  ...
  (65.*pi)./(384.*m) + (378515.*f.*power(pi,1.6666666666666667))./ ...
   (96768.*power(f.*m,0.3333333333333333)) -  ...
  (3.183802571673538.*f)./(power(f.*m,0.6666666666666666).*eta) -  ...
  (5.*f)./(128.*power(f.*m,2.6666666666666665).*power(pi,1.6666666666666667).* ...
     eta) - 3715./(32256.*f.*power(m,2).*pi.*eta) -  ...
  (15293365.*f)./(6.5028096e7.*power(f.*m,1.3333333333333333).* ...
     power(pi,0.3333333333333333).*eta) +  ...
  (f.*power(pi,0.3333333333333333))./ ...
   (4.*power(f.*m,1.6666666666666667).*eta) -  ...
  (107.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333))./ ...
   (42.*m.*eta) + (38645.*pi)./(32256.*m.*eta) +  ...
  (77096675.*f.*power(pi,1.6666666666666667))./ ...
   (1.6257024e7.*power(f.*m,0.3333333333333333).*eta) -  ...
  (3085.*f.*eta)./ ...
   (9216.*power(f.*m,1.3333333333333333).*power(pi,0.3333333333333333)) +  ...
  (76055.*f.*power(pi,0.3333333333333333).*eta)./ ...
   (221184.*power(f.*m,0.6666666666666666)) -  ...
  (74045.*f.*power(pi,1.6666666666666667).*eta)./ ...
   (48384.*power(f.*m,0.3333333333333333)) -  ...
  (127825.*f.*power(pi,0.3333333333333333).*power(eta,2))./ ...
   (165888.*power(f.*m,0.6666666666666666)) -  ...
  (107.*f.*power(pi,0.3333333333333333).* ...
     log(power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333)))./ ...
   (42.*power(f.*m,0.6666666666666666).*eta);


dPsiEta = 3085./(3072.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333)) + ...
  (76055.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333))./...
   73728. - (74045.*power(f.*m,0.6666666666666666).*...
     power(pi,1.6666666666666667))./32256. + ...
  (9.551407715020614.*power(f.*m,0.3333333333333333))./power(eta,2) - ...
  3./(128.*power(f.*m,1.6666666666666667).*power(pi,1.6666666666666667).*...
     power(eta,2)) - 3715./(32256.*f.*m.*pi.*power(eta,2)) - ...
  15293365./(2.1676032e7.*power(f.*m,0.3333333333333333).*...
     power(pi,0.3333333333333333).*power(eta,2)) + ...
  (3.*power(pi,0.3333333333333333))./...
   (8.*power(f.*m,0.6666666666666666).*power(eta,2)) - ...
  (38645.*pi)./(32256.*power(eta,2)) - ...
  (77096675.*power(f.*m,0.6666666666666666).*power(pi,1.6666666666666667))./...
   (1.0838016e7.*power(eta,2)) - ...
  (127825.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333).*...
     eta)./27648. - (38645.*pi.*log(6))./(21504.*power(eta,2)) + ...
  (107.*power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333).*...
     log(power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333)))./...
   (14.*power(eta,2)) - (38645.*pi.*...
     log(power(f.*m,0.3333333333333333).*power(pi,0.3333333333333333)))./...
   (10752.*power(eta,2));
